iT邦幫忙

2023 iThome 鐵人賽

DAY 2
0

什麼是Spring?

在先說明Spring Boot之前,來聊一下何為Spring?

以下是Spring Framework的架構圖

Spring Framework是由Rod Johnson於2012年所提出,起源於作者Rod Johnson所寫的Expert One-on-One J2EE Design and Development一書,作者對於J2EE技術標準進行省思後提出此框架,鑑於現有J2EE技術過於複雜且龐大的重量級官方框架(EJB),提出一個輕量級、不需特殊容器支援且不相依於特殊規範的Spring Framework。

Spring架構為解決企業應用程式開發的複雜性而建立的架構(如:EJB),替開發Java應用程式提供了全面的基礎架構支援。它提供了依賴植入和「開箱即用」的一些模組,如:Spring MVC、Spring JDBC、Spring Security、Spring AOP、Spring IoC、Spring ORM、Spring Test。這些模組大幅地縮短了應用程式的開發時間,加強了開發應用程式的效率。

Spring框架共有20個模組,依功能分為「核心容器」、「資料存取與整合」、「網路應用程式」、「其它功能」共四大類。

Core Container(核心容器)

Core與Beans

提供Spring Framework的基礎功能

Context

提供讀取Spring Framework設定檔的功能

SpEL(Expression Language)

提供統一表達式語言的擴充套件模組,可以用來查詢、管理執行中的物件,也可以存取陣列內容、屬性值、呼叫物件的方法、邏輯運算與集合,類似的用法像是JSP中的EL寫法。

資料存取與整合(Data Access/Integration)

由JDBC,ORM,OXM,JMS and Transaction等模組構成

JDBC模組

提供JDBC相關功能,讓原生Java的JDBC程式變的更容易管理,並且提供宣告式交易管理機制(Transaction)。

ORM模組

提供整合Object Relational Mapping Framework的功能,可以整合JDO(Java Data Objects)、JPA(Java Persistence API)與Hibernate等,Spring ORM也支援宣告式交易管理機制(Transaction)。

網路應用程式(Web)與其它功能

Web,Spring MVC,Web-Socket,AOP,Aspects,Messaing,Instrumentation等。

AOP模組

提供Spring Framework的AOP功能,是Spring Framework的重點。

Web模組

提供整合Web應用程式的功能以及整合各種Web framework(例如Struts)

web MVC模組

Spring提供的Web應用程式MVC Framework,讓開發者於Web應用程式內用IoC等機制,並且可以隨時抽換View與Controller元件。

Messaging模組

提供整合messaging API和訊息協議提供支援,用來處理訊息資料使用

說了這麼多~ 上面有一堆模組要配置,很麻煩對吧?

什麼是Spring Boot?

Spring Boot的設計初衷是解決Spring各版本設定工作過於繁重的問題,簡化初始架設流程、降低開發難度,使開發人員員需要專注應用程式的功能和業務邏輯實現,而不用在設定上花費太多時間。

Spring Boot使用「預設大於設定」的理念,提供了很多已經整合好的方案,以便程式設計師在開發應用程式時能做到「開箱即用」的設定。

Spring Boot是Spring架構的擴充和自動化,它消除了在Spring中需要進行的XML檔案設定,使得開發變得更快、更高效、更自動化。

Spring Boot的特色

使用簡單

Spring Boot 支援用註釋的方式輕鬆實現類別的定義與功能開發、無程式產生和XML設定,新手入門極易上手。

設定簡單

Spring Boot根據在類別路徑中的JAR和類別自動設定Bean,能自動完成大量設定。

簡化設定

Spring Boot提供了大量的Starter來簡化依賴設定。

部署簡單

Spring Boot可以在具備JRE(Java 執行環境)的環境中獨立執行,它內鍵了嵌入式的Tomcat、Jetty、Netty等Servlet容器,專案不用被包裝成WAR格式,可以直接以JAR套件的方式執行。

雲端整合

微服務開發架構Spring Cloud是以Spring Boot為基礎,所以Spring Cloud是相依於Spring Boot的。

監控簡單

它提供了一整套的監控、管理應用程式狀態的功能模組,包含監控應用程式的執行緒資訊、記憶體資訊、應用程式健康狀態等。

兩者的關係

Spring Boot其實是要依賴Spring的,並不是全新的架構,它是Spring的自動化。
https://ithelp.ithome.com.tw/upload/images/20230918/20163313fvHlasHAg8.jpg


上一篇
【Day01】開賽前言
下一篇
【Day03】開發環境設定
系列文
30天做出電商網站,後端:Spring Boot 輕快學 + 前端:Vue.js 學習誌4
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言